package com.aiwiown.snackmq.network.config;

import lombok.Data;

/**
 * 网络配置类
 */
@Data
public class NetworkConfig {

    /**
     * 服务器IP
     */
    private String host;
    /**
     * 服务器端口
     */
    private int port = 9092;

    /**
     * Boss线程数
     */
    private int bossThreads = 1;

    /**
     * Worker线程数
     */
    private int workerThreads = Runtime.getRuntime().availableProcessors() * 2;

    /**
     * 连接超时时间（毫秒）
     */
    private int connectionTimeout = 5000;

    /**
     * 心跳间隔（毫秒）
     */
    private int heartbeatInterval = 30000;

    /**
     * 最大连接数
     */
    private int maxConnections = 10000;

    /**
     * 接收缓冲区大小
     */
    private int receiveBufferSize = 1024 * 1024;

    /**
     * 发送缓冲区大小
     */
    private int sendBufferSize = 1024 * 1024;

    /**
     * 是否启用TCP保活
     */
    private boolean tcpKeepAlive = true;

    /**
     * 是否启用TCP无延迟
     */
    private boolean tcpNoDelay = true;

    /**
     * 是否启用重用地址
     */
    private boolean reuseAddress = true;

    /**
     * 是否启用重用端口
     */
    private boolean reusePort = true;
} 